﻿//公共调用工具
//本文件由：贺镇涛（2021300004071）负责
class Mys//mys文件类（包括操作方法）
{
private:
public:
	Mys();//在内存中创建一个文本文件(实际就是.txt)
	void save(const string& s);//把文件保存到s的地址下，默认为当前目录,后缀名改为.my（在内存中直接写成my）
	void save();//默认的为当前目录的函数
	void push(const string& s);//把一行s加入到文件的末尾,不带任何格式
	void push_input(const string& s);//把一行s加入到文件Document部分的末尾,格式为另起一行"<Input>s"
	void push_output(const string& s);//把一行s加入到文件Document部分的末尾,格式为另起一行"<Output>s"
	std::string get_property(bool ShouldPrint = 1/*若为真，则向屏幕输出，否则仅返回*/);//输出<Created by....>那一行
	std::string readline(int k, bool ShouldPrint = 1/*若为真，则向屏幕输出，否则仅返回*/);//在读取指定的行k,
	std::string read(bool ShouldPrint = 1/*若为真，则向屏幕输出，否则仅返回*/);//在Document/Begin到End之间一行行读取，并打印出来,要求同上
};

/*
.mys格式：-从下一行开始要加入文件中,-后面的不用加
<*Content-type:application/mathtoys*>-构造函数时创建
<***Mathtoys Document-HongYi Honor College,WHU G2021***>-构造函数时创建
<Created by Mathtoys-v0.4;年-月-日-时-分-秒>-构造函数时创建，每次save时修改，要求获取当前时间
<Document/Begin>-构造函数时创建
这里插入内容-这句话不要写，思路：在文件中寻找<Document/Begin>，并在它的上一行push
<Input>....-输入的内容，不用管，只需要把push_input的接口写好就好了,即push("<Input>"+s)
<Output>....-输出的内容，不用管，只需要把push_output的接口写好就好了，同理
<Document/End>-构造函数时创建
*/